// package com.zmn.oms.task.job.orderwork;
//
// import com.github.ltsopensource.core.domain.Action;
// import com.github.ltsopensource.core.domain.Job;
// import com.github.ltsopensource.spring.tasktracker.JobRunnerItem;
// import com.github.ltsopensource.spring.tasktracker.LTS;
// import com.github.ltsopensource.tasktracker.Result;
// import com.zmn.common.dto.ResultDTO;
// import com.zmn.common.utils.date.DateUtil;
// import com.zmn.common.utils.number.NumberUtil;
// import com.zmn.manager.lts.interfaces.task.TaskManager;
// import com.zmn.oms.manager.utils.TaskConsts;
// import com.zmn.oms.task.es.business.interfaces.orderwork.RebuildEsOrderWorkService;
// import lombok.extern.slf4j.Slf4j;
// import org.springframework.beans.factory.annotation.Autowired;
//
// import javax.annotation.PostConstruct;
// import javax.annotation.Resource;
// import java.sql.SQLException;
// import java.util.Date;
//
// /**
//  * 类描述：
//  *
//  * @author lujia
//  * @date 2018/12/29 14:55
//  */
// @LTS
// @Slf4j
// public class OrderWorkJob {
//
//     @Autowired
//     RebuildEsOrderWorkService rebuildEsOrderWorkService;
//
//     @Resource
//     TaskManager taskManager;
//
//     @JobRunnerItem(shardValue = TaskConsts.TASK_ID_REBUILD_ORDER_WORK)
//     public Result runRebuildOrderWorkJob(Job job) throws Throwable {
//
//         log.info("执行：" + job);
//
//         String startTimeStr = job.getParam("startTime");
//         String endTimeStr = job.getParam("endTime");
//         String numberStr = job.getParam("number");
//
//         if (!DateUtil.isValid(startTimeStr, DateUtil.FORMAT_DEFAULT)) {
//             return new Result(Action.EXECUTE_FAILED, "开始时间校验失败!");
//         }
//
//         if (!DateUtil.isValid(endTimeStr, DateUtil.FORMAT_DEFAULT)) {
//             return new Result(Action.EXECUTE_FAILED, "结束时间校验失败!");
//         }
//
//         if (!NumberUtil.isNumber(numberStr) || Integer.valueOf(numberStr) < 1 || Integer.valueOf(numberStr) > 1000 ) {
//             return new Result(Action.EXECUTE_FAILED, "数量校验失败!");
//         }
//
//         Date startTime = DateUtil.parse(startTimeStr);
//         Date endTime = DateUtil.parse(endTimeStr);
//         Integer number = Integer.valueOf(numberStr);
//         rebuildEsOrderWorkService.rebuild(startTime, endTime, number);
//
//         return new Result(Action.EXECUTE_SUCCESS, "执行成功了!");
//     }
//
//     /**
//      *
//      * 每隔2分钟 同步10分钟之内的录入工单
//      */
//     @PostConstruct
//     void init() {
//         Job job = new Job();
//         job.setTaskId(TaskConsts.TASK_ID_TIME_REBUILD_ORDER_WORK);
//         job.setParam(TaskManager.SHARD_FIELD, TaskConsts.TASK_ID_TIME_REBUILD_ORDER_WORK);
//         job.setCronExpression("0 /2 * * * ?");
//         ResultDTO result = taskManager.submitTask(job);
//         if (!result.getStatusBool()) {
//             log.error("#oms#orderworkjob# job submit fail...");
//         }
//     }
//
//     /**
//      *  同步10分钟之内的录入工单
//      * @param job
//      * @return
//      */
//     @JobRunnerItem(shardValue = TaskConsts.TASK_ID_TIME_REBUILD_ORDER_WORK)
//     public Result runWorkJob(Job job) {
//         Date endDate = DateUtil.getNow();
//         Date startDate = DateUtil.addMinute(endDate, -10);
//
//         try {
//             rebuildEsOrderWorkService.rebuild(startDate, endDate, 500);
//         } catch (SQLException e) {
//             log.error(e.getMessage(), e);
//         }
//
//         String startDateStr = DateUtil.dateFormatToString(startDate, DateUtil.FORMAT_DEFAULT);
//         String endDateStr = DateUtil.dateFormatToString(endDate, DateUtil.FORMAT_DEFAULT);
//
//         log.info("#oms#orderworkjob# 同步10分钟之内的录入工单任务执行成功 ！{}-{}", startDateStr, endDateStr);
//         return new Result(Action.EXECUTE_SUCCESS, "执行成功了!");
//     }
// }
